package io;


import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;

/**
 * 转换流-InputStreamReader
 */
public class InputStreamReader_ {

    public static void main(String[] args) throws Exception {

        /*
            InputStreamReader:Reader的子类，可以将InputStream包装成Reader
            OutputStreamWriter:Writer的子类，可以将OutputStream包装成Writer
            当处理纯文本数据时，如果使用字符流效率更高，还可以有效解决中文问题，所以建议将字节流转换成字符流
            可以在使用时指定编码格式(utf-8 gbk gb2312等)

            例：
            将字节流 FileInputStream 包装成 字符流 InputStreamReader，对文件进行读取(utf-8格式)
            进而包装成 BufferedReader
         */

        String filePath = "D:\\IdeaCode\\javaStudy\\story.txt";
        //把 FileInputStream 转成 InputStreamReader
        // 字节流转成字符流，方便中文读取
        // 指定编码UTF-8，防止乱码
        InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath), "UTF-8");

        //把 InputStreamReader 传入 BufferedReader
        BufferedReader br = new BufferedReader(isr);
        String line = br.readLine();
        System.out.println("读取到的内容=" + line);

        //关闭外层流
        br.close();
    }
}
